<?php
session_start();

//1: 生成白色底图
$image = imagecreatetruecolor(200, 60);//默认黑色图片
$bgcolor = imagecolorallocate($image, 255,255,255);//设置白色
imagefill($image,0,0,$bgcolor);//填充颜色

$fontface = 'ttf/FZYTK.TTF';
$str = '中文字库我们是安德森水电费';
$strdb = str_split($str, 3);
//2.在底图上生成随机数字
$captcha_code = '';
for($i=0; $i<4; $i++){
    $fontsize = 6;
    $fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));//0-120为深色区间
    $index = rand(0, count($strdb)-1);
    $cn = $strdb[$index];
    $captcha_code .= $cn;

    imagettftext($image, mt_rand(20,24), mt_rand(-60,60), (40*$i+20), mt_rand(30,35),$fontcolor,$fontface,$cn);

}
//session保存验证码
$_SESSION['authcode'] = $captcha_code;

//3.增加点干扰元素
for($i=0; $i<200; $i++){
    $pointcolor = imagecolorallocate($image, rand(50,200), rand(50,200), rand(50,200));
    imagesetpixel($image, rand(1,199), rand(1,59), $pointcolor); 
}
//4.增加线干扰元素
for($i=0; $i<3; $i++){
    $linecolor = imagecolorallocate($image, rand(80,220),rand(80,220),rand(80,220));
    imageline($image, rand(1,199), rand(1,199), rand(1,199), rand(1,59), $linecolor);
}

header('content-type:image/png');
imagepng($image);


imagedestroy($image);